Semaphores
1) We use mutex semaphores or simulate their behavior if the OS does not support pure mutex semaphores. 2) We use binary semaphores
| #define SY_SEMAPHORE_AVAILABLE |
Enable this define when semaphores are supported on system
| #define SYSemaphore sem_t |
| #define sySemaphoreDelete |
( |
|
_s | ) |
sem_destroy(&_s) |
| #define sySemaphoreTake |
( |
|
_s | ) |
sem_wait(&_s) |
| #define sySemaphoreGive |
( |
|
_s | ) |
sem_post(&_s) |
Create semaphore
- Parameters
-
| semId | Pointer to the semaphore id |
| count | Number of resources |
- Returns
- NQ_SUCCESS when semaphore was created or NQ_FAIL on error
Reset semaphore counter
- Parameters
-
| pSemID | Pointer to the semaphore id |
Lock a resource protected by a binary semaphore
- Parameters
-
| sem | Binary semaphore |
| timeout | Timeout in seconds to wait for lock |
- Returns
- NQ_SUCCESS when the resource was locked or NQ_FAIL on error